\section{ec\+\_\+fsm\+\_\+coe Struct Reference}
\label{structec__fsm__coe}\index{ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}}


Finite state machines for the C\+A\+Nopen over Ether\+C\+AT protocol.  


\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\mbox{\label{structec__fsm__coe_a52d4a5703f091adfb825f6a9c313cee3}} 
\textbf{ ec\+\_\+slave\+\_\+t} $\ast$ \textbf{ slave}
\begin{DoxyCompactList}\small\item\em slave the F\+SM runs on \end{DoxyCompactList}\item 
\mbox{\label{structec__fsm__coe_aeb93652dd379136a6db678b3b46add0f}} 
unsigned int \textbf{ retries}
\begin{DoxyCompactList}\small\item\em retries upon datagram timeout \end{DoxyCompactList}\item 
\mbox{\label{structec__fsm__coe_a437c0840edb8c817d7602da24eeea549}} 
void($\ast$ \textbf{ state} )(\textbf{ ec\+\_\+fsm\+\_\+coe\+\_\+t} $\ast$, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$)
\begin{DoxyCompactList}\small\item\em CoE state function. \end{DoxyCompactList}\item 
\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$ \textbf{ datagram}
\begin{DoxyCompactList}\small\item\em Datagram used in last step. \end{DoxyCompactList}\item 
unsigned long \textbf{ jiffies\+\_\+start}
\begin{DoxyCompactList}\small\item\em CoE timestamp. \end{DoxyCompactList}\item 
\mbox{\label{structec__fsm__coe_a05afb369519ffb1dd6c0df68a4c6a127}} 
\textbf{ ec\+\_\+sdo\+\_\+t} $\ast$ \textbf{ sdo}
\begin{DoxyCompactList}\small\item\em current S\+DO \end{DoxyCompactList}\item 
\mbox{\label{structec__fsm__coe_aafeafb472a372377a5c4822823b831be}} 
uint8\+\_\+t \textbf{ subindex}
\begin{DoxyCompactList}\small\item\em current subindex \end{DoxyCompactList}\item 
\mbox{\label{structec__fsm__coe_a039da8218be486849bd275bf1f580e1e}} 
\textbf{ ec\+\_\+sdo\+\_\+request\+\_\+t} $\ast$ \textbf{ request}
\begin{DoxyCompactList}\small\item\em S\+DO request. \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ complete\+\_\+size}
\begin{DoxyCompactList}\small\item\em Used when segmenting. \end{DoxyCompactList}\item 
\mbox{\label{structec__fsm__coe_aca395e10ef3f667a25fe05e70ce38d6b}} 
uint8\+\_\+t \textbf{ toggle}
\begin{DoxyCompactList}\small\item\em toggle bit for segment commands \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ offset}
\begin{DoxyCompactList}\small\item\em Data offset during segmented download. \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ remaining}
\begin{DoxyCompactList}\small\item\em Remaining bytes during segmented download. \end{DoxyCompactList}\item 
size\+\_\+t \textbf{ segment\+\_\+size}
\begin{DoxyCompactList}\small\item\em Current segment size. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Finite state machines for the C\+A\+Nopen over Ether\+C\+AT protocol. 

Definition at line 52 of file fsm\+\_\+coe.\+h.



\subsection{Field Documentation}
\mbox{\label{structec__fsm__coe_a1de20f618cb8600ef37e05cd909ea4cf}} 
\index{ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}!datagram@{datagram}}
\index{datagram@{datagram}!ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}}
\subsubsection{datagram}
{\footnotesize\ttfamily \textbf{ ec\+\_\+datagram\+\_\+t}$\ast$ ec\+\_\+fsm\+\_\+coe\+::datagram}



Datagram used in last step. 



Definition at line 57 of file fsm\+\_\+coe.\+h.

\mbox{\label{structec__fsm__coe_acae779843d2dde4e1a02f4781d259d46}} 
\index{ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}!jiffies\+\_\+start@{jiffies\+\_\+start}}
\index{jiffies\+\_\+start@{jiffies\+\_\+start}!ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}}
\subsubsection{jiffies\+\_\+start}
{\footnotesize\ttfamily unsigned long ec\+\_\+fsm\+\_\+coe\+::jiffies\+\_\+start}



CoE timestamp. 



Definition at line 58 of file fsm\+\_\+coe.\+h.

\mbox{\label{structec__fsm__coe_ac87498148a6733460b858339b554f0ce}} 
\index{ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}!complete\+\_\+size@{complete\+\_\+size}}
\index{complete\+\_\+size@{complete\+\_\+size}!ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}}
\subsubsection{complete\+\_\+size}
{\footnotesize\ttfamily uint32\+\_\+t ec\+\_\+fsm\+\_\+coe\+::complete\+\_\+size}



Used when segmenting. 



Definition at line 62 of file fsm\+\_\+coe.\+h.

\mbox{\label{structec__fsm__coe_ae6154dddb5d2a111661d2ecbc866a66d}} 
\index{ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}!offset@{offset}}
\index{offset@{offset}!ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}}
\subsubsection{offset}
{\footnotesize\ttfamily uint32\+\_\+t ec\+\_\+fsm\+\_\+coe\+::offset}



Data offset during segmented download. 



Definition at line 64 of file fsm\+\_\+coe.\+h.

\mbox{\label{structec__fsm__coe_a90921faef4f8ccada6bf621357f070d2}} 
\index{ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}!remaining@{remaining}}
\index{remaining@{remaining}!ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}}
\subsubsection{remaining}
{\footnotesize\ttfamily uint32\+\_\+t ec\+\_\+fsm\+\_\+coe\+::remaining}



Remaining bytes during segmented download. 



Definition at line 65 of file fsm\+\_\+coe.\+h.

\mbox{\label{structec__fsm__coe_ad25b5b2158356b9ed09fe6d3cd21b99c}} 
\index{ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}!segment\+\_\+size@{segment\+\_\+size}}
\index{segment\+\_\+size@{segment\+\_\+size}!ec\+\_\+fsm\+\_\+coe@{ec\+\_\+fsm\+\_\+coe}}
\subsubsection{segment\+\_\+size}
{\footnotesize\ttfamily size\+\_\+t ec\+\_\+fsm\+\_\+coe\+::segment\+\_\+size}



Current segment size. 



Definition at line 66 of file fsm\+\_\+coe.\+h.

